﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using MySql.Data.MySqlClient;
using System.Text;

namespace DA
{
    public class Databases : GO.BaseClass
    {
        public VO.Databases objVO;

        public Databases()
        {
            objVO = new VO.Databases();
            sbSQL = new StringBuilder();
        }

        public void Salvar()
        {
            // MONTA A INSTRUÇÃO SQL
            sbSQL.Append(" INSERT INTO `Databases` (Titulo, Data, Arquivo, idUnidade, idLevel) ");
            sbSQL.Append(" VALUES('p_Titulo','p_Data', 'p_Arquivo', p_idUnidade, p_idLevel); ");

            // SUBSTITUI OS PARÂMETROS
            sbSQL.Replace("p_Titulo", objVO.Titulo);
            sbSQL.Replace("p_Data", objVO.Data.ToString("s"));
            sbSQL.Replace("p_Arquivo", objVO.Arquivo);
            sbSQL.Replace("p_idUnidade", objVO.IdUnidade.ToString());
            sbSQL.Replace("p_idLevel", objVO.IdLevel.ToString());

            // EXECUTA INSTRUÇÃO
            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);

            // LIMPA VARIÁVEL
            sbSQL.Remove(0, sbSQL.Length);
        }

        public void Atualizar()
        {
            // MONTA A INSTRUÇÃO SQL
            sbSQL.Append(" UPDATE `Databases` SET");
            sbSQL.Append("     Titulo  = 'p_Titulo ',");
            sbSQL.Append("     Data = 'p_Data' ");
            sbSQL.Append("     Arquivo  = 'p_Arquivo',");
            sbSQL.Append("     idUnidade  = 'p_idUnidade',");
            sbSQL.Append("     idLevel  = 'p_idLevel'");
            sbSQL.Append(" WHERE ");
            sbSQL.Append(" 	   idDatabase   = p_idDatabase  ;        ");

            // SUBSTITUI OS PARÂMETROS
            sbSQL.Replace("p_idDatabase", objVO.IdDatabase.ToString());
            sbSQL.Replace("p_Titulo", objVO.Titulo);
            sbSQL.Replace("p_Data", objVO.Data.ToString("s"));
            sbSQL.Replace("p_Arquivo", objVO.Arquivo);
            sbSQL.Replace("p_idUnidade", objVO.IdUnidade.ToString());
            sbSQL.Replace("p_idLevel", objVO.IdLevel.ToString());

            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);

            sbSQL.Remove(0, sbSQL.Length);
        }

        public void Excluir()
        {

            sbSQL.Append(" DELETE FROM `Databases` ");
            sbSQL.Append(" WHERE idDatabase   = p_idDatabase  ; ");

            // SUBSTITUI OS PARÂMETROS
            sbSQL.Replace("p_idDatabase", objVO.IdDatabase.ToString());

            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getTodosRegistros()
        {

            sbSQL.Append(" SELECT * FROM `Databases`; ");

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getRegistroById()
        {
            sbSQL.Append(" SELECT * FROM `Databases` ");
            sbSQL.Append(" WHERE idDatabase = p_idDatabase; ");
            sbSQL.Replace("p_idDatabase", objVO.IdDatabase.ToString());

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getRegistroDatabase()
        {
            sbSQL.Append(" SELECT * FROM `Databases` ");
            sbSQL.Append(" ORDER BY Data ASC ");
            sbSQL.Append(" LIMIT 0,6; ");

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getTodosRegistroDatabaseByUnidade()
        {
            sbSQL.Append(" SELECT * FROM `Databases` ");
            sbSQL.Append("  WHERE idUnidade = p_idUnidade AND idLevel <= p_idLevel ");
            sbSQL.Append(" ORDER BY Data ASC ");
           
            sbSQL.Replace("p_idUnidade", objVO.IdUnidade.ToString());
            sbSQL.Replace("p_idLevel", objVO.IdLevel.ToString());

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }
    }
}